package de.hs_mannheim.see.task.vier.goodDesign;

import org.junit.Assert;
import org.junit.Test;

public class JUnit {

	@Test
	public void test1() {

		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.setAktZustand(reset1);
		a1.waehleProdukt("Kaffee");
		a1.waehleOption("Milch");

		Assert.assertEquals(0, a1.abbruch());

	}

	@Test
	public void test2() {

		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.setAktZustand(reset1);
		a1.waehleProdukt("Kaffee");
		a1.waehleOption("Milch");
		a1.bezahleBetrag(150);

		Assert.assertEquals(20, a1.zapfeProdukt());

	}

	@Test
	public void test3() {

		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.setAktZustand(reset1);
		a1.waehleProdukt("Kakao");
		a1.bezahleBetrag(110);

		Assert.assertEquals(0, a1.zapfeProdukt());

	}

	@Test
	public void test4() {

		// Nichts passiert option wird einfach nicht gelogged
		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.setAktZustand(reset1);
		a1.waehleProdukt("Kakao");
		a1.waehleOption("Zucker");

		Assert.assertEquals(0, a1.zapfeProdukt());

	}

	@Test
	public void test5() {

		// Nichts passiert option wird einfach nicht gelogged da Option nicht zu geordnet werden kann.
		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.waehleProdukt("Zucker");

		Assert.assertEquals(0, a1.getPreis());

	}
	@Test
	public void test6() {

		// Nichts passiert option wird einfach nicht gelogged da Option nicht zu geordnet werden kann.
		AutomatenSteuerung a1 = new AutomatenSteuerung();
		ResetState reset1 = new ResetState(a1);
		a1.bezahleBetrag(130);
		a1.waehleProdukt("Kaffee");
		a1.waehleOption("Zucker");

		Assert.assertEquals(0, a1.zapfeProdukt());

	}
	

}
